<?php

class Admin_IndexController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    	$auth = Zend_Auth::getInstance();
    	$infoUser = $auth->getIdentity();
    	$this->view->fullName = $infoUser->USERNAME;
    }

    public function preDispatch(){
    	$auth = Zend_Auth::getInstance();
    	if(!$auth->hasIdentity()){
    		if($this->_request->getActionName() != "login"){
    			$this->_redirect("/admin/index/login");
    		}
    	}
    }
    
    public function indexAction()
    {
        // action body
    	$this->view->headTitle("Bảng Điều Khiển","PREPEND");
    	$this->view->title = "Bảng Điều Khiển";
    	Zend_Layout::startMvc(array("layoutPath"=>APPLICATION_PATH."/layouts/scripts","layout"=>"admin"));
    }
    public function libraryAction(){
    	$this->view->headTitle("Thư Viện","PREPEND");
    	$this->view->title = "Thư Viện";
    	Zend_Layout::startMvc(array("layoutPath"=>APPLICATION_PATH."/layouts/scripts","layout"=>"admin"));
    }
    public function communicationAction(){
    	$this->view->headTitle("Truyền Thông","PREPEND");
    	$this->view->title = "Truyền Thông";
    	Zend_Layout::startMvc(array("layoutPath"=>APPLICATION_PATH."/layouts/scripts","layout"=>"admin"));
    }
    public function danhmucAction(){
    	$this->view->headTitle("Danh Mục","PREPEND");
    	$this->view->title = "Danh Mục";
    	Zend_Layout::startMvc(array("layoutPath"=>APPLICATION_PATH."/layouts/scripts","layout"=>"admin"));
    }
    
    public function loginAction(){
    	$this->view->headTitle("Đăng Nhập","PREPEND");
    	if($this->_request->isPost()){
    		//1.Gọi kết nối với Zend_Db
    		$db = Zend_Registry::get("connectDB");
    		//$db = Zend_Db::factory($dbOption['adapter'],$dbOption['params']);
        	//2. Khoi tao Zend Auth
        	$auth = Zend_Auth::getInstance();
        	
        	//3.Khai báo bảng và 2 cột dùng để so sánh khi login
        	$authAdapter = new Zend_Auth_Adapter_DbTable($db);
        	$authAdapter->setTableName("admin")
        	->setIdentityColumn("USERNAME")->setCredentialColumn("PASSWORD");
        	
        	//4.Lấy giá trị được gửi từ form
        	$uname = $this->_request->getParam("UName");
        	$pass = $this->_request->getParam("Pass");
        	
        	//5.Đưa vào so sánh với dữ liệu
        	$authAdapter->setIdentity($uname);
        	$authAdapter->setCredential(md5("CTV".md5($pass)."ITTeam"));
        	
        	//6.Kiểm tra trạng thái của user nếu Status = 1 thì mới được login
        	$select = $authAdapter->getDbSelect();
        	$select->where("STATUS = 1");
        	
        	//7.Lấy kết quả truy vấn
        	$result = $auth->authenticate($authAdapter);
        	$flag = false;
        	if($result->isValid()){
        		//8.Lấy những dữ liệu cần thiết trong bảng admin nếu login thành công
        		$data = $authAdapter->getResultRowObject(null,array("PASSWORD"));
        		//9.Lưu dữ liệu của admin vào session
        		$auth->getStorage()->write($data);
        		$flag = true;
        	}
        	else {
        		$this->view->error = "Đăng nhập không thành công vui lòng kiểm tra tài khoản và mật khẩu";
        	}
        	if($flag == true){
        		$this->_redirect("admin/index");
        	}
    	}
    }
    
    public function logoutAction() {
    	$auth = Zend_Auth::getInstance();
    	$auth->clearIdentity();
    	$this->_redirect("/admin/index/login");
    }
    
}

